package bb.lanxing.lib.devices.sprint.model;

import android.util.Pair;
import java.io.IOException;
import rx.functions.Action1;

public interface SprintHomeModel {
    void clear();

    void connectDevice(String str, String str2, String str3, String str4, String str5, String str6, String str7, String str8) throws IOException;

    void disconnectDevice(String str, String str2, String str3) throws IOException;

    String getFirmwareVersion();

    String getFirmwareVersionWithAddress(String str);

    boolean isAppVersionTooLower();

    boolean isFirmwareTooLower();

    void release();

    void requestBattery();

    void requestDeviceStatus();

    void requestFirmwareVersion();

    void requestHardwareVersion();

    void requestManufacturer();

    void requestMemoryRemaining();

    void requestModel();

    void requestSerial();

    void requestSoftwareVersion();

    void senTime();

    void setAddress(String str);

    void subscribeBattery(Action1<Integer> action1);

    void subscribeDeviceStatus(Action1<Byte> action1);

    void subscribeFirmwareVersion(Action1<String> action1);

    void subscribeHardwareVersion(Action1<String> action1);

    void subscribeManufacturer(Action1<String> action1);

    void subscribeMemoryRemaining(Action1<Pair<Long, Long>> action1);

    void subscribeModel(Action1<String> action1);

    void subscribeSerial(Action1<String> action1);

    void subscribeSoftwareVersion(Action1<String> action1);
}
